package com.ftwj.demo.message.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.ftwj.demo.message.SendInterface;
import com.ftwj.demo.modular.dao.SmsNoteDao;
import com.ftwj.demo.modular.entity.SmsNoteBean;
import com.ftwj.demo.utils.exception.CustomException;
import com.ftwj.demo.utils.exception.SmsSendException;
import com.ftwj.demo.utils.sms.RandomUtil;
import com.ftwj.demo.utils.sms.TxSmsUtil;
/**
* <p>Title: TxSmsSend</p>  
* <p>Description: 短信下发</p>
* <p>Copyright: Copyright (c) 2020 </p>  
* <p>Company: 兰州飞天网景信息产业有限公司</p>    
* @author DuLiGang
* @date 2020年4月10日 上午10:39:59
* @version V1.0
 */
@Component
public class TxSmsSend implements SendInterface<SmsNoteBean> {

	@Autowired
	private SmsNoteDao smsNoteDao;
	
	/**
	 * <p>Title: sendPushSms</p>  
	 * <p>Description: 发送验证码短信</p>  
	 * @param bean
	 * @return 
	 * @author DuLiGang
	 * @date 2020年4月10日  
	 * @version 1.0
	 */
	@Override
	public Integer send(SmsNoteBean bean) {
		if(bean.getType()==1) {
			//验证短信是否下发过于频繁
			Integer num=smsNoteDao.getRandNumByAccnbr(bean.getPhone());
			if(num>0) {
				throw new CustomException("验证码发送频率过高，请稍后重试！");
			}
		}
		String rand = RandomUtil.getRandomStr(6);//产生6位数的随机数字串
		bean.setCode(rand);
		//发送短信验证码短信
		if(TxSmsUtil.sendSms(bean.getPhone(), rand)!=0){
			throw new SmsSendException();
		}
		//插入短信验证码
		return smsNoteDao.insert(bean);
	}

}
